void main() {
  /*
  List里面常用的属性和方法:
    常用属性:
      length        长度
      reversed      翻转
      isEmpty       是否为空
      isNotEmpty    是否不为空
    常用方法:
      add           增加
      addAll        增加全部
      indexof       同Java
      remove        删除
      removeAt      删除指定索引下的值
      fillRange     修改指定索引范围内的值
      insert(index,value);          指定位置插入
      insertAll(index,list)         指定位置插入全部
      toList()      其他类型转换为List
      join()        List转换成字符串
      split()       字符串转化成List
      函数式方法
        forEach
        map
        where
        any
  */
  // 展示一下初始化list的方式
  List listInit1 = [];
  List listInit2 = <int>[];
  List listInit3 = new List.filled(10, "");
  List listInit4 = new List.empty();

  // 定义List
  List list = [1, 2, 3, 4, 5, 6, 7, 8, 9];

  print("遍历1");
  for (var i = 0; i < list.length; i++) {
    print(list[i]);
  }

  print("遍历2");
  for (var item in list) {
    print(item);
  }

  print("遍历3");
  list.forEach((value) {
    print("value is $value");
  });

  print("map");
  var list2 = list.map((value) {
    return value * 2;
  });
  print(list2);

  print("where");
  var list3 = list.where((value) {
    return value > 4;
  });
  print(list3);

  print("any-只要集合里有满足条件的就返回true");
  var list4 = list.any((value) {
    return value > 4;
  });
  print(list4);

  print("every-集合里每一个都满足条件的就返回true");
  var list5 = list.every((value) {
    return value > 4;
  });
  print(list5);

  // 定义map
  Map person = {"name": "波波茶", "age": 29, "type": "精灵"};
  print("person.keys: $person.keys");
  print("person.values: $person.values");
  // put的办法
  person["skill"] = "刷野";
  person.addAll({"level": 10001, "parent": "奇迹行者"});

  print("map 遍历");
  person.forEach((key, value) {
    print("$key-$value");
  });
}
